/**
 * 角色数据访问层 - 角色的数据库操作接口
 *
 * 开发人员：陈宏伟
 * 开发时间：2025-10-20 至 2025-10-25
 * 模块职责：定义角色的数据库查询方法，支持多租户角色管理和权限控制查询
 *
 * 技术要点：
 * - Spring Data JPA查询方法定义
 * - 多租户数据隔离查询设计
 * - 角色唯一性验证查询支持
 * - 企业角色列表查询优化
 * - 索引优化和查询性能考虑
 *
 * 开发故事：负责角色Repository的设计和实现，与权限服务和用户角色关联深度配合，提供高效的角色数据访问能力。
 */
package com.pbl.repository;

import com.pbl.entity.Role;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;
import java.util.Optional;

/**
 * 角色数据访问接口 - 提供角色的CRUD操作和查询功能
 */
public interface RoleRepository extends JpaRepository<Role, Long> {
    /**
     * 根据企业ID和角色编码查询角色（唯一性验证）
     */
    Optional<Role> findByEnterprise_IdAndCode(Long enterpriseId, String code);

    /**
     * 查询企业下所有角色列表
     */
    List<Role> findByEnterprise_Id(Long enterpriseId);
}
